<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">

<title> 【NOI2018】多边形 - 题目 - Judge Duck Online </title>

<link rel="icon" type="image/png" href="/images/judgeduck-logo-small.png" />

<script src="/libs/js/jquery-3.2.1.min.js"></script>

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="/libs/css/bootstrap.min.css" />

<!-- Latest compiled and minified JavaScript -->
<script src="/libs/js/bootstrap.min.js"></script>

<link rel="stylesheet" type="text/css" href="/css/main.css" />
<link rel="stylesheet" href="/css/non-responsive.css" type="text/css" />

<script src="/js/md5.js"></script>
<script src="/js/judgeduck.js"></script>

<script type="text/x-mathjax-config">
	MathJax.Hub.Config({
		showProcessingMessages: false,
		tex2jax: {
			inlineMath: [["$", "$"], ["\\\\(", "\\\\)"]],
			processEscapes:true
		},
		menuSettings: {
			zoom: "Hover"
		}
	});
</script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>

<link rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css">
<script src="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js"></script>

</head>

<body onload="">

<!-- Fixed navbar -->
<nav class="navbar navbar-default" role="navigation" style="background-color: #eeeeee">
	<div class="container">
		<div class="navbar-header">
			<div class="navbar-brand">
				<a href="/">
					<img src="/images/judgeduck-logo.png" width="40px" height="40px" style="margin:-10px" />
				</a>
			</div>
			<font class="navbar-brand">
				Judge Duck Online
			</font>
		</div>
		<div class="navbar-collapse collapse">
			<ul class="nav navbar-nav">
				<li class="nav-item">
					<a class="nav-link" href="/index/index.html"> 首页 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/problems/index.html"> 题目列表 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/submissions/index.html"> 提交记录 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/blogs/index.html"> 博客 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/faq/index.html"> FAQ </a>
				</li>
			</ul>
			<ul class="nav navbar-nav navbar-right">
				<li class="nav-item">
					<a class="nav-link" href="/user/login/index.html"> 登录 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/user/register/index.html"> 注册 </a>
<a style="display:inline-block;background-color:;color:#fff;padding:2px 5px;font-family:arial;font-size:12px;font-weight:bold;" href="http://www.iis7.com" id="34c30d89d1394f17be2aab9feef08071" target="_blank">iis7站长之家</a>
				</li>
			</ul>
		</div><!--/.nav-collapse -->
	</div>
</nav>




<div id="main_div" class="container" style="padding-left: 25px; padding-right: 25px">
<h2> 【NOI2018】多边形 <a href='/problem/noi18f/board/index.html' class=' pull-right btn btn-success'> 排行榜 </a> </h2><hr />时间限制： 10 s <br />空间限制： 512 MB <br /><br /><h3>题目描述</h3>

<p>久莲是一个喜欢出题的女孩子。</p>

<p>在今年的 World Final 结束以后，久莲特别喜欢计算几何，于是她打算在 NOI 的考场上也出一个计算几何：这是一道只有题目名字和计算几何相关的题目。</p>

<p>首先，久莲给出了一棵 $n(n \geq 2)$ 个节点的有根树 $T$，根节点编号为 $1$。定义叶子节点为除了根以外所有度数恰好为 $1$ 的节点。下图是一个树 $T$ 的例子，其中叶子节点集合为 ${3,4,5}$。</p>

<ul>
<li>图片还在路上</li>
</ul>

<p>接着通过这棵树，久莲构造了一个序列 $A$:</p>

<ul>
<li>从根节点开始深度优先遍历整棵树，遍历时按照编号从小到大的顺序来访问孩子，这样可以得到一个树 $T$ 的 DFS 序。</li>
<li>接着按照在 DFS 序中的出现顺序从前往后，久莲把所有叶子节点排成一排得到了一个序列 $A$。</li>
</ul>

<p>更进一步地，通过序列 $A$，久莲定义了两个叶子节点 $u,v$ 的距离 $d(u,v)$：假设 $u$ 在 $A$ 中是第 $i$ 个元素，$v$ 是第 $j$ 个元素，则 $d(u,v)=\min(|i-j|, |A|-|i-j|)$。其中 $|A|$ 为序列的长度，即 $T$ 的叶子个数，$i,j$ 指的是出现的位置，从 $1$ 开始计数。</p>

<p>上面的例子中，序列 $A$ 为 $[4,5,3]$，其中 $d(3,5)=d(3,4)=d(4,5)=1$，$3,4,5$ 的出现位置分别为 $3,1,2$。</p>

<p>最后，久莲给出了一个参数 $K$，利用这棵有根树 $T$ 和序列$A$，我们可以构造一张 $n$ 个点的<strong>无重边无自环</strong>的无向图 $G$：两个不同的点 $u,v$ 之间有边当且仅当它们满足下列条件中的至少一个：</p>

<ul>
<li>在树 $T$ 中存在连接 $u,v$ 的边。</li>
<li>在树 $T$ 中 $u,v$ 都是叶子节点且 $d(u,v) \leq K$。</li>
</ul>

<p>当 $K = 1$ 或 $2$ 时，上面的例子得到的图 $G$ 都如下图所示：</p>

<ul>
<li>图片还在路上</li>
</ul>

<p>现在久莲想让你来计算一下 $G$ 中不同的哈密尔顿回路数量有多少条，答案可能很大，请对 $998244353$ 取模后输出。</p>

<p>下面是一些补充定义：</p>

<ul>
<li>无重边无自环的无向图 $G$ 的一条哈密尔顿回路 $H$ 是 $G$ 中边的一个子集，其中每一个点恰好有两条不同的相邻边在 $H$ 中，且任意两个点都可以通过 $H$ 中的边直接或间接到达。</li>
<li>无重边无自环的无向图 $G$ 的两条哈密尔顿回路 $H_1,H_2$ 是不同的当且仅当存在一条边 $e$ 使得 $e$ 在 $H_1$ 中且不在 $H_2$ 中。</li>
</ul>

<h3>输入格式</h3>

<p>从标准输入读入数据。</p>

<p>第一行输入两个整数 $n,K$，表示树 $T$ 的点数以及久莲选定的参数 $K$。</p>

<p>第二行输入 $n-1$ 个整数 $f_i(1 \leq f_i \leq i)$，其中 $f_i$ 表示树 $T$ 上存在边 $(f_i,i+1)$。</p>

<h3>输出格式</h3>

<p>输出到标准输出。</p>

<p>输出一行一个整数，表示哈密尔顿回路数量对 $998244353$ 取模后的结果。</p>

<h3>样例输入</h3>

<div class="row">
<div class="col-xs-12 form-group">
<textarea class="form-control" rows="3" style="background-color:white" readonly>5 1
1 1 2 2
</textarea>
</div>

<p></div></p>

<h3>样例输出</h3>

<div class="row">
<div class="col-xs-12 form-group">
<textarea class="form-control" rows="3" style="background-color:white" readonly>2
</textarea>
</div>

<p></div></p>

<h3>样例解释</h3>

<p>该样例和题面中的例子完全相同。两条哈密尔顿回路经过节点的顺序分别为 $(1,2,4,5,3)$ 和 $(1,2,5,4,3)$。</p>

<h3>子任务</h3>

<p>各测试点的数据规模和性质如下表：</p>

<table class="table table-bordered"><thead><tr><th rowspan="1">编号</th><th rowspan="1">$n$</th><th rowspan="1">$K$</th><th rowspan="1">特殊性质</th><th rowspan="1">编号</th><th rowspan="1">$n$</th><th rowspan="1">$K$</th><th rowspan="1">特殊性质</th></tr></thead><tbody><tr><td rowspan="1">1</td><td rowspan="1">$\leq 5$</td><td rowspan="4">$\leq 3$</td><td rowspan="4">无</td><td rowspan="1">11</td><td rowspan="10">$\leq 1000$</td><td rowspan="6">$\leq 2$</td><td rowspan="3">A</td></tr><tr><td rowspan="1">2</td><td rowspan="1">$\leq 10$</td><td rowspan="1">12</td></tr><tr><td rowspan="1">3</td><td rowspan="1">$\leq 15$</td><td rowspan="1">13</td></tr><tr><td rowspan="1">4</td><td rowspan="1">$\leq 20$</td><td rowspan="1">14</td><td rowspan="3">无</td></tr><tr><td rowspan="1">5</td><td rowspan="6">$\leq 1000$</td><td rowspan="6">$=1$</td><td rowspan="3">A</td><td rowspan="1">15</td></tr><tr><td rowspan="1">6</td><td rowspan="1">16</td></tr><tr><td rowspan="1">7</td><td rowspan="1">17</td><td rowspan="4">$\leq 3$</td><td rowspan="2">A</td></tr><tr><td rowspan="1">8</td><td rowspan="3">无</td><td rowspan="1">18</td></tr><tr><td rowspan="1">9</td><td rowspan="1">19</td><td rowspan="2">无</td></tr><tr><td rowspan="1">10</td><td rowspan="1">20</td></tr></tbody></table> 

<p>其中性质 A 为保证树上所有节点至多有两个孩子。</p>

<p>对于所有的数据，保证 $1 \leq f_i \leq i, 2 \leq n \leq 1000$。</p>

<h3>题目来源</h3>

<p>NOI 2018 Day 2</p>
<hr />
				<div class="row">
					<input type="hidden" id="pid" value="noi18f" />
					<div class="col-xs-3 form-group">
						<label for="language"> 语言 </label>
						<select class="form-control" id="language">
							<option> C </option>
<option selected> C++ </option>
<option> C++11 </option>
						</select>
					</div>
					<div class="col-xs-12 form-group">
						<h4>关于标准输出的说明（最后更新：2018年10月23日）</h4>

<p>标准输出将被重定向到内存中，所以你的内存使用量也包括了你的标准输出的大小（向上取整到 4KB 的倍数）。</p>

<p>如果你的程序要进行大量输出，请考虑这一点。</p>

					</div>
					<div class="col-xs-12 form-group">
						<label for="code"> 你的代码 </label>
						<textarea id="code" class="form-control" rows="10">#include &lt;stdio.h&gt;

int main() {
	return 0;
}
</textarea>
						<br />
					</div>
					<div class="col-xs-12 form-group">
						<a href="javascript:judgeduck.submit()" id="btn_submit" class="btn btn-md btn-default"> 提交 </a>
					</div>
					<br />
				</div>

	<hr />
	
	<div class="row">
		<p style="text-align: center; color: #888">
			Judge Duck Online | 评测鸭在线 <br />
			Server Time: 2019-08-02 17:11:13 | Loaded in 0 ms | <a href="/status/index.html"> Server Status </a> <br />
			个人娱乐项目，仅供学习交流使用
		</p>
	</div>
</div>

</body>

</html>
